home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games Extra 1996 September / Amiga Games Extra CD-ROM 9-1996.iso / userbox / demoversionen / dcf77 demo v3 beta / für programmierer / waitfordcf77.c < prev    next >
C/C++ Source or Header  |  1994-09-13  |  1KB  |  55 lines

  1. /* WaitForDCF77                                                     ***RGR***
  2.                                                                     12-sep-94
  3.    Author:   Ralf Gruner, An der Sense 5a, D-02779 Großschönau, Germany.
  4. */
  5.  
  6. #include <exec/types.h>
  7. #include <exec/semaphores.h>
  8. #include <clib/exec_protos.h>
  9. #include <clib/dos_protos.h>
  10. #include <stdio.h>
  11.  
  12. struct StatusList
  13. {
  14.     struct SignalSemaphore sl_Semaphore;
  15.     STRPTR version;
  16.     BOOL Received;
  17. };
  18.  
  19. struct StatusList *DCF77PublicStatus=NULL;
  20.  
  21. UBYTE    * DCF77SemaphoreName = "DCF77 State";
  22. BOOL    DCF77received=FALSE;
  23.  
  24. main(int argc, char *argv[])
  25. {
  26.     char *msg1="\n WaitForDCF77 Version 1.01 - © 1994 Ralf Gruner, Großschönau, Germany.\n";
  27.     char *msg2=" WaitForDCF77 waits for received time from the\n european radio clock signal DCF77.";
  28.     char *msg3=" Usage: Simply run it while the receiver software DCF77 is running.\n";
  29.  
  30.     if(argc != 1)
  31.     {
  32.         puts(msg1);
  33.         puts(msg2);
  34.         puts(msg3);
  35.     }
  36.     else
  37.         while(!DCF77received)
  38.         {
  39.             Forbid();
  40.             if(DCF77PublicStatus=(struct StatusList *) FindSemaphore(DCF77SemaphoreName))
  41.             {
  42.                 ObtainSemaphoreShared((struct SignalSemaphore *) DCF77PublicStatus);
  43.                 DCF77received=DCF77PublicStatus->Received;
  44.                 ReleaseSemaphore((struct SignalSemaphore *) DCF77PublicStatus);
  45.             }
  46.             else
  47.                 DCF77received=FALSE;    // DCF77 is not running
  48.             Permit();
  49.  
  50.             if(!DCF77received)
  51.                 Delay(150L);    // wait three seconds and try again...
  52.         }
  53. }
  54.  
  55.